
#include "gtest/gtest.h"
#include "memoryData.h"
#include "Facade.h"

class TestMemInitMemoryData : public ::testing::Test {
public:
};

TEST_F(TestMemInitMemoryData, testMapArgs){
	std::map<std::string, std::string>  map;
	ASSERT_EQ(0, mem::initMemoryData(map));

    ASSERT_EQ(MAX_BAODAN_COUNT, mem::getMaxOrderCount());
    ASSERT_EQ(MAX_CHENGJIAODAN_COUNT, mem::getMaxMatchCount());

	mem::deinitMemoryData();
}
TEST_F(TestMemInitMemoryData, testMapArgs_Zero){
	std::map<std::string, std::string>  map {
        {"MAX_BAODAN_COUNT"         , "0" },
        {"MAX_CHENGJIAODAN_COUNT"   , "0"}
    };
	ASSERT_EQ(0, mem::initMemoryData(map));

    ASSERT_EQ(MAX_BAODAN_COUNT, mem::getMaxOrderCount());
    ASSERT_EQ(MAX_CHENGJIAODAN_COUNT, mem::getMaxMatchCount());

	mem::deinitMemoryData();
}
TEST_F(TestMemInitMemoryData, testMapArgs_Customize){
	std::map<std::string, std::string>  map {
        {"MAX_BAODAN_COUNT"         , "100" },
        {"MAX_CHENGJIAODAN_COUNT"   , "200"}
    };

	ASSERT_EQ(0, mem::initMemoryData(map));

    ASSERT_EQ(100, mem::getMaxOrderCount());
    ASSERT_EQ(200, mem::getMaxMatchCount());
    
	mem::deinitMemoryData();
}



TEST_F(TestMemInitMemoryData, testRawArgs){
    ASSERT_EQ(0, mem::initMemoryData(200, 100));

    ASSERT_EQ(200, mem::getMaxOrderCount());
    ASSERT_EQ(100, mem::getMaxMatchCount());

	mem::deinitMemoryData();
}
TEST_F(TestMemInitMemoryData, testRawArgs_Zero){
    ASSERT_EQ(-1, mem::initMemoryData(0, 0));
    ASSERT_EQ(-1, mem::initMemoryData(10, 0));
    ASSERT_EQ(-1, mem::initMemoryData(0, 10));

    ASSERT_EQ(-1, mem::initMemoryData(-1, -1));
    ASSERT_EQ(-1, mem::initMemoryData(10, -1));
    ASSERT_EQ(-1, mem::initMemoryData(-1, 10));
}
